package com.yantong.mapper;

import com.yantong.pojo.BalanceCWLog;
import com.yantong.pojo.BalanceLog;
import com.yantong.pojo.BalanceLogExample;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

import java.util.List;
import java.util.Map;

public interface BalanceLogMapper {
    /**
     * 条件统计，封装条件API
     * @param example
     * @return
     */
    int countByExample(BalanceLogExample example);

    /**
     * 条件删除
     * @param example
     * @return
     */
    int deleteByExample(BalanceLogExample example);

    /**
     * 主键删除
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 全字段插入
     * @param record
     * @return
     */
    int insert(BalanceLog record);

    /**
     * 适配插入，空字段不插入
     * @param record
     * @return
     */
    int insertSelective(BalanceLog record);

    /**
     * 条件查询
     * @param example
     * @return
     */
    List<BalanceLog> selectByExample(BalanceLogExample example);

    /**
     * 主键查询
     * @param id
     * @return
     */
    BalanceLog selectByPrimaryKey(Long id);

    /**
     * 条件适配更新
     * @param record
     * @param example
     * @return
     */
    int updateByExampleSelective(@Param("record") BalanceLog record, @Param("example") BalanceLogExample example);

    /**
     * 条件更新
     * @param record
     * @param example
     * @return
     */
    int updateByExample(@Param("record") BalanceLog record, @Param("example") BalanceLogExample example);

    /**
     * 主键更新，字段适配
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(BalanceLog record);

    /**
     * 主键更新，全字段
     * @param record
     * @return
     */
    int updateByPrimaryKey(BalanceLog record);

    /**
     * 条件统计
     * @param params
     * @return
     */
    int countByParams(Map<String, Object> params);

    /**
     * 条件查询
     * @param params
     * @param rowBounds
     * @return
     */
    List<BalanceLog> listByParams(Map<String, Object> params, RowBounds rowBounds);

    /**
     * 条件查询 不分页
     * @param params
     * @return
     */
    List<BalanceLog> listByParams(Map<String, Object> params);

	List<BalanceCWLog> listSupplyCwBalanceLogs(Map<String, Object> params, RowBounds rowBounds);

	int countSupplyCwBalanceLogs(Map<String, Object> params);

	List<BalanceCWLog> listAllBalanceLogs(Map<String, Object> params);


	 /**
     * 总金额
     * @param params
     * @return
     */
    String sumByMoney(Map<String, Object> params);


    /**
     * 查询重复记录
     * @param params
     * @return
     */
    List<BalanceLog> BalanceLoglistByParams(Map<String, Object> params);
}